Try this again
authorMatthias Clasen <mclasen@redhat.com>
Thu, 2 May 2013 13:29:35 +0000 (09:29 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Thu, 2 May 2013 13:29:35 +0000 (09:29 -0400)
When the hostnamed call is cancelled, we get a G_IO_ERROR_CANCELLED
error back. Handle it properly.

gtk/gtkplacessidebar.c

index 9b08485df0b4df4c2939413c77b542982d5ae685..310b6c79756e8c4c7c5b9a0b537effb830ccc388 100644 (file)
@@ -3568,11 +3568,14 @@ hostname_proxy_new_cb (GObject      *source_object,
 {
        GtkPlacesSidebar *sidebar = user_data;
        GError *error = NULL;
+        GDBusProxy *proxy;
 
-       sidebar->hostnamed_proxy = g_dbus_proxy_new_for_bus_finish (res, &error);
-       g_clear_object (&sidebar->hostnamed_cancellable);
+       proxy = g_dbus_proxy_new_for_bus_finish (res, &error);
+        if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
+          return;
 
-       g_object_unref (sidebar);
+        sidebar->hostnamed_proxy = proxy;
+       g_clear_object (&sidebar->hostnamed_cancellable);
 
        if (error != NULL) {
                g_debug ("Failed to create D-Bus proxy: %s", error->message);
@@ -3833,7 +3836,7 @@ gtk_places_sidebar_init (GtkPlacesSidebar *sidebar)
                                  "org.freedesktop.hostname1",
                                  sidebar->hostnamed_cancellable,
                                  hostname_proxy_new_cb,
-                                 g_object_ref (sidebar));
+                                 sidebar);
 
        sidebar->drop_state = DROP_STATE_NORMAL;
        sidebar->new_bookmark_index = -1;